package company_request

import (
	"private-go-sdk/http"
)

type CompanyauthAuthorizationtemplateDownloadRequest struct {
	// <ext>core:true</ext> 【认证id】认证id 【作用】 1、若已提交基本信息，可根据认证id查询单位信息并自动带入至授权书模板中 2、查询优先级为认证id>法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id 3、均不传值时，返回参数为空的授权书模板，需要自行补全单位信息
	RequestId string `json:"requestId,omitempty"`
	// <ext>core:true</ext> 【法人单位名称】法人单位名称 【作用】 1、若已提交基本信息，可根据法人单位名称查询单位信息并自动带入至授权书模板中 2、查询优先级为认证id>法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id 3、均不传值时，返回参数为空的授权书模板，需要自行补全单位信息
	Name string `json:"name,omitempty"`
	// <ext>core:true</ext> 【法人单位id】法人单位id 【作用】 1、若已提交基本信息，可根据法人单位id查询单位信息并自动带入至授权书模板中 2、查询优先级为认证id>法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id 3、均不传值时，返回参数为空的授权书模板，需要自行补全单位信息
	Id *int64 `json:"id,omitempty"`
	// <ext>core:true</ext> 【统一社会信用代码/工商注册号】统一社会信用代码/工商注册号 【作用】 1、若已提交基本信息，可根据统一社会信用代码/工商注册号查询单位信息并自动带入至授权书模板中 2、查询优先级为认证id>法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id 3、均不传值时，返回参数为空的授权书模板，需要自行补全单位信息
	RegisterNo string `json:"registerNo,omitempty"`
	// <ext>core:true</ext> 【第三方业务系统法人单位id】第三方业务系统法人单位id 【作用】 1、若已提交基本信息，可根据第三方业务系统法人单位id查询单位信息并自动带入至授权书模板中 2、查询优先级为认证id>法人单位id>法人单位名称>统一社会信用代码/工商注册号>第三方业务系统法人单位id 3、均不传值时，返回参数为空的授权书模板，需要自行补全单位信息
	OpenCompanyId string `json:"openCompanyId,omitempty"`
	// <ext>core:true</ext> 【授权范围】授权范围 【作用】 1、不限：后续可在电子签厂商提供服务的所有电子签章平台免授权成为印章管理员 2、仅当前平台：仅在当前平台认证成为印章管理员 【传参】 取值范围：1（不限），2（仅当前平台）；不传值默认为：1（不限）
	AuthScope *int64 `json:"authScope,omitempty"`
	// <ext>core:true;format:date</ext> 【授权期限】授权期限 【作用】 1、可传入授权到期时间，到达设置的授权期限后，组织机构认证将失效 2、不传值时默认为长期有效 3、若电子签章管理后台已经预设了单位认证有效期，则传入此参数无效 【传参】 日期格式：yyyy-MM-dd
	AuthEndTime string `json:"authEndTime,omitempty"`
	// <ext>core:true</ext> 【模板类型】模板类型 【作用】 下载指定认证方式的授权书模板，如传入的认证单位已选择了认证方式，则会下载对应的授权书，参数传参无效。 【传参】 1、取值范围：2（对公打款认证授权书），3（UKEY认证授权书），4（线下材料认证授权书），5（项目部认证授权书）；不传值默认为：2（对公打款认证授权书）。 2、传入取值范围以外的值也默认下载：2（对公打款认证授权书）。
	TemplateFileType *int64 `json:"templateFileType,omitempty"`
}
func (obj CompanyauthAuthorizationtemplateDownloadRequest) GetUrl() string {
    return "/companyauth/authorizationtemplate/download"
}

func (obj CompanyauthAuthorizationtemplateDownloadRequest) GetHttpParameter() *http.HttpParameter {
    parameter := http.NewPostHttpParameter()
    parameter.AddParam("requestId", obj.RequestId)
    parameter.AddParam("name", obj.Name)
    parameter.AddParam("id", obj.Id)
    parameter.AddParam("registerNo", obj.RegisterNo)
    parameter.AddParam("openCompanyId", obj.OpenCompanyId)
    parameter.AddParam("authScope", obj.AuthScope)
    parameter.AddParam("authEndTime", obj.AuthEndTime)
    parameter.AddParam("templateFileType", obj.TemplateFileType)
    return parameter
}
